package chpt10;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class FirstSwing {
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
        // EventQueue.invokeLater(()->createAndShowGUI());
    }

    private static void createAndShowGUI() {
        // 创建窗体
        JFrame frame = new JFrame("First Swing Program");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 75);

        // 创建标签
        JLabel label = new JLabel("姓名：");

        // 创建文本框
        JTextField textField = new JTextField(10);

        // 创建按钮
        JButton button = new JButton("点击我");
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 获取文本框中的内容
                String text = textField.getText();
                // 弹出对话框显示内容
                JOptionPane.showMessageDialog(frame, "你好！" + text);
            }
        });
        // 使用Lambda表达式简化注册监听器代码
        /*button.addActionListener( e->{
        	String text = textField.getText();
        	JOptionPane.showMessageDialog(frame, "你好！" + text);
        	}
        );*/

        // 设置frame上的布局管理器为FlowLayout，并将组件添加到frame中
        frame.setLayout(new FlowLayout());
        frame.add(label); // frame.getContentPane().add(label);  
        frame.add(textField);
        frame.add(button);
        
        // 显示窗体
        frame.setVisible(true);
    }
}